package com.zhuanzhuan.hero.user.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.zhuanzhuan.hero.user.annotations.EncryptedField;
import com.zhuanzhuan.hero.user.annotations.EncryptedTable;
import com.zhuanzhuan.hero.user.enums.UserStateEnum;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * entity:HeroUserInfo
 *
 * @author hanjunjun
 * @date 2024-6-17
 */
@Data
@NoArgsConstructor
@ToString
@TableName("hero_user_info")
@Accessors(chain = true)
@EncryptedTable
public class HeroUserInfo {

      /**
       * id
       */
      @TableId(type = IdType.AUTO)
      private Long	id;
      /**
       * 转转uid
       */
      private Long	uid;
      /**
       * 注册手机号
       */
      @EncryptedField
      private String mobile;
      /**
       * 昵称
       */
      private String nickname;
      /**
       * 头像
       */
      private String	profilePhoto;
      /**
       * 上次生效的头像
       */
      private String	lastEffectiveProfilePhoto;
      /**
       * 性别:1-男,2-女
       */
      private Integer sex;
      /**
       * 公司职位
       */
      private String	companyPosition;
      /**
       * 用户状态,10-待入驻,20-已入驻,30-已退出,40-已清退
       */
      private Integer userState;
      /**
       * 是否展示访客记录
       */
      private Integer isShowVisitor;
      /**
       * 是否打开个性化推荐开关
       */
      private Integer isOpenPersonalRecommend;
      /**
       * 封面
       */
      private String backdrop;
      /**
       * 上次生效的封面
       */
      private String lastEffectiveBackdrop;

      /**
       * 个人简介
       */
      private String personalIntroduction;

      /**
       * 会员等级
       * 不做展示，展示的都取自会员接口   只冗余用作运营后台的筛选项
       */
//      @TableField(updateStrategy = FieldStrategy.IGNORED)
      private Integer memberLevel;

      /**
       * 入驻时间
       */
//      @TableField(updateStrategy = FieldStrategy.IGNORED)
      private Date settleTime;

      /**
       * 0-无效、1-有效、2-删除
       */
      private Integer state;
      /**
       * 创建时间
       */
      private Date	createTime;
      /**
       * 更新时间
       */
      private Date	updateTime;
      /**
       * 创建的用户id
       */
      private Long	createBy;
      /**
       * 更新的用户id
       */
      private Long	updateBy;

      /**
       * 是否已注销
       *
       * @param
       * @return boolean
       * @author  hanjunjun
       * @date 2024/7/22
       **/
      public boolean isUnregistered() {
            return UserStateEnum.UNREGISTERED.getCode().equals(userState);
      }
}

